home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / QuickTime / QuickTime 3 Interfaces & Libs / QTDevWin / CIncludes / SocketServices.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-08-21  |  22.2 KB  |  812 lines  |  [TEXT/dosa]

  1. /*
  2.      File:        SocketServices.h
  3.  
  4.      Contains:    This file contains constants and data structures that
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    QuickTime 3.0
  8.  
  9.      Copyright:    © 1994-1998 by Apple Computer, Inc. All rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18. #ifndef __SOCKETSERVICES__
  19. #define __SOCKETSERVICES__
  20.  
  21. #ifndef __MACTYPES__
  22. #include <MacTypes.h>
  23. #endif
  24. #ifndef __MIXEDMODE__
  25. #include <MixedMode.h>
  26. #endif
  27.  
  28.  
  29.  
  30. #if PRAGMA_ONCE
  31. #pragma once
  32. #endif
  33.  
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37.  
  38. #if PRAGMA_IMPORT
  39. #pragma import on
  40. #endif
  41.  
  42. #if PRAGMA_STRUCT_ALIGN
  43.     #pragma options align=mac68k
  44. #elif PRAGMA_STRUCT_PACKPUSH
  45.     #pragma pack(push, 2)
  46. #elif PRAGMA_STRUCT_PACK
  47.     #pragma pack(2)
  48. #endif
  49.  
  50. /*
  51.   ///////////////////////////////////////////////////////////////////////////////////////
  52.       TypeDefs for the Socket Services function codes
  53. */
  54.  
  55. typedef Byte                             SS_BYTE;
  56. typedef Byte                             SS_FLAGS8;
  57. typedef Byte                             SS_IRQ;
  58. typedef Byte                             SS_PWRLEVEL;
  59. typedef UInt16                             SS_ADAPTER;
  60. typedef UInt16                             SS_BCD;
  61. typedef UInt16                             SS_COUNT;
  62. typedef UInt16                             SS_EDC;
  63. typedef UInt16                             SS_FLAGS16;
  64. typedef UInt16                             SS_PAGE;
  65. typedef UInt16                             SS_PWRINDEX;
  66. typedef UInt16                             SS_SIGNATURE;
  67. typedef UInt16                             SS_SKTBITS;
  68. typedef UInt16                             SS_SOCKET;
  69. typedef UInt16                             SS_SPEED;
  70. typedef UInt16                             SS_WINDOW;
  71. typedef UInt16                             SS_WORD;
  72. typedef UInt32                             SS_BASE;
  73. typedef UInt32                             SS_FLAGS32;
  74. typedef UInt32                             SS_OFFSET;
  75. typedef UInt32                             SS_SIZE;
  76. typedef Ptr                             SS_PTR;
  77. typedef OSErr                             SS_RETCODE;
  78.  
  79. struct SS_SCHARTBL {
  80.     UInt16                             sktCaps;                    /*    SS_FLAGS16*/
  81.     UInt32                             activeHigh;                    /*    SS_FLAGS32*/
  82.     UInt32                             activeLow;                    /*    SS_FLAGS32*/
  83. };
  84. typedef struct SS_SCHARTBL                SS_SCHARTBL;
  85.  
  86. struct SS_SISTRUCT {
  87.     UInt16                             bufferLength;                /*    SS_WORD*/
  88.     UInt16                             dataLength;                    /*    SS_WORD*/
  89.     SS_SCHARTBL                     charTable;                    /*    SS_FLAGS16*/
  90. };
  91. typedef struct SS_SISTRUCT                SS_SISTRUCT;
  92.  
  93. enum {
  94.     STR_SIZE                    = 24
  95. };
  96.  
  97. /* minimum string length*/
  98.  
  99. struct SS_VISTRUCT {
  100.     UInt16                             bufferLength;                /*    SS_WORD*/
  101.     UInt16                             dataLength;                    /*    SS_WORD*/
  102.     char                             szImplementor[1];            /*    SS_WORD*/
  103.     Byte                             padding[1];                    /*    */
  104. };
  105. typedef struct SS_VISTRUCT                SS_VISTRUCT;
  106.  
  107. struct SS_ACHARTBL {
  108.     UInt16                             adpCaps;                    /*    SS_FLAGS16*/
  109.     UInt32                             activeHigh;                    /*    SS_FLAGS32*/
  110.     UInt32                             activeLow;                    /*    SS_FLAGS32*/
  111. };
  112. typedef struct SS_ACHARTBL                SS_ACHARTBL;
  113.  
  114. struct SS_PWRENTRY {
  115.     Byte                             powerLevel;                    /*    SS_PWRLEVEL*/
  116.     Byte                             validSignals;                /*    SS_FLAGS8*/
  117. };
  118. typedef struct SS_PWRENTRY                SS_PWRENTRY;
  119.  
  120. struct SS_AISTRUCT {
  121.     UInt16                             bufferLength;                /*    SS_WORD*/
  122.     UInt16                             dataLength;                    /*    SS_WORD*/
  123.     SS_ACHARTBL                     charTable;
  124.     UInt16                             numPwrEntries;                /*    SS_WORD*/
  125.     SS_PWRENTRY *                    pwrEntryPtr;
  126. };
  127. typedef struct SS_AISTRUCT                SS_AISTRUCT;
  128.  
  129. struct SS_MEMWINTBL {
  130.     UInt16                             memWndCaps;                    /*    SS_FLAGS16*/
  131.     UInt32                             firstByte;                    /*    SS_BASE*/
  132.     UInt32                             lastByte;                    /*    SS_BASE*/
  133.     UInt32                             minSize;                    /*    SS_SIZE*/
  134.     UInt32                             maxSize;                    /*    SS_SIZE*/
  135.     UInt32                             reqGran;                    /*    SS_SIZE*/
  136.     UInt32                             reqBase;                    /*    SS_SIZE*/
  137.     UInt32                             reqOffset;                    /*    SS_SIZE*/
  138.     UInt16                             slowest;                    /*    SS_SPEED*/
  139.     UInt16                             fastest;                    /*    SS_SPEED*/
  140. };
  141. typedef struct SS_MEMWINTBL                SS_MEMWINTBL;
  142.  
  143. struct SS_IOWINTBL {
  144.     UInt16                             ioWndCaps;                    /*    SS_FLAGS16*/
  145.     UInt32                             firstByte;                    /*    SS_BASE*/
  146.     UInt32                             lastByte;                    /*    SS_BASE*/
  147.     UInt32                             minSize;                    /*    SS_SIZE*/
  148.     UInt32                             maxSize;                    /*    SS_SIZE*/
  149.     UInt32                             reqGran;                    /*    SS_SIZE*/
  150.     UInt16                             addrLines;                    /*    SS_COUNT*/
  151.     Byte                             eisaSlot;                    /*    SS_FLAGS8*/
  152.     Byte                             padding[1];                    /*    */
  153. };
  154. typedef struct SS_IOWINTBL                SS_IOWINTBL;
  155.  
  156. struct SS_WISTRUCT {
  157.     UInt16                             bufferLength;                /*    SS_WORD*/
  158.     UInt16                             dataLength;                    /*    SS_WORD*/
  159.     UInt16                             numTblEntries;                /*    SS_WORD*/
  160.     SS_MEMWINTBL                     memWinTbl;
  161.     SS_IOWINTBL                     ioWinTbl;
  162. };
  163. typedef struct SS_WISTRUCT                SS_WISTRUCT;
  164.  
  165. /*————————————————————————————————————————————————————————————————————————
  166.     function selectors passed to Socket Service entry point
  167. ————————————————————————————————————————————————————————————————————————*/
  168.  
  169. enum {
  170.     fnSSGetAdapterCount            = 0x80,
  171.     fnSSUnsupported81            = 0x81,
  172.     fnSSUnsupported82            = 0x82,
  173.     fnSSGetSSInfo                = 0x83,
  174.     fnSSInquireAdapter            = 0x84,
  175.     fnSSGetAdapter                = 0x85,
  176.     fnSSSetAdapter                = 0x86,
  177.     fnSSInquireWindow            = 0x87,
  178.     fnSSGetWindow                = 0x88,
  179.     fnSSSetWindow                = 0x89,
  180.     fnSSGetPage                    = 0x8A,
  181.     fnSSSetPage                    = 0x8B,
  182.     fnSSInquireSocket            = 0x8C,
  183.     fnSSGetSocket                = 0x8D,
  184.     fnSSSetSocket                = 0x8E,
  185.     fnSSGetStatus                = 0x8F,
  186.     fnSSResetSocket                = 0x90,
  187.     fnSSUnsupported91            = 0x91,
  188.     fnSSUnsupported92            = 0x92,
  189.     fnSSUnsupported93            = 0x93,
  190.     fnSSUnsupported94            = 0x94,
  191.     fnSSInquireEDC                = 0x95,
  192.     fnSSGetEDC                    = 0x96,
  193.     fnSSSetEDC                    = 0x97,
  194.     fnSSStartEDC                = 0x98,
  195.     fnSSPauseEDC                = 0x99,
  196.     fnSSResumeEDC                = 0x9A,
  197.     fnSSStopEDC                    = 0x9B,
  198.     fnSSReadEDC                    = 0x9C,
  199.     fnSSGetVendorInfo            = 0x9D,
  200.     fnSSAcknowledgeInterrupt    = 0x9E,
  201.     fnSSGetSetPriorHandler        = 0x9F,
  202.     fnSSGetSetSSAddr            = 0xA0,
  203.     fnSSGetAccessOffsets        = 0xA1,
  204.     fnSSUnsupportedA2            = 0xA2,
  205.     fnSSUnsupportedA3            = 0xA3,
  206.     fnSSUnsupportedA4            = 0xA4,
  207.     fnSSUnsupportedA5            = 0xA5,
  208.     fnSSUnsupportedA6            = 0xA6,
  209.     fnSSUnsupportedA7            = 0xA7,
  210.     fnSSUnsupportedA8            = 0xA8,
  211.     fnSSUnsupportedA9            = 0xA9,
  212.     fnSSUnsupportedAA            = 0xAA,
  213.     fnSSUnsupportedAB            = 0xAB,
  214.     fnSSUnsupportedAC            = 0xAC,
  215.     fnSSUnsupportedAD            = 0xAD,
  216.     fnSSVendorSpecific            = 0xAE
  217. };
  218.  
  219. /*    SSVendorSpecificPB.function values*/
  220.  
  221.  
  222. enum {
  223.     fnVSReserved                = 0x00,
  224.     fnVSGetSocketLocationIcon    = 0x01,
  225.     fnVSGetSocketLocationText    = 0x02,
  226.     fnVSDoSocketLocalization    = 0x03,
  227.     fnVSAppleSocketCapabilities    = 0x04,
  228.     fnVSSleepWakeNotification    = 0x05
  229. };
  230.  
  231.  
  232. /*————————————————————————————————————————————————————————————————————————
  233.     defines for the Socket Services function codes
  234. ————————————————————————————————————————————————————————————————————————*/
  235.  
  236. enum {
  237.     AC_IND                        = 1,                            /* adapter characteristics*/
  238.     AC_PWR                        = 2,
  239.     AC_DBW                        = 4
  240. };
  241.  
  242.  
  243. enum {
  244.     AS_POWERDOWN                = 1,
  245.     AS_MAINTAIN                    = 2
  246. };
  247.  
  248.  
  249. enum {
  250.     EC_UNI                        = 1,
  251.     EC_BI                        = 2,
  252.     EC_REGISTER                    = 4,
  253.     EC_MEMORY                    = 8,
  254.     EC_PAUSABLE                    = 16,
  255.     EC_WRITE                    = 16
  256. };
  257.  
  258.  
  259. enum {
  260.     ET_CHECK8                    = 1,
  261.     ET_SDLC16                    = 2
  262. };
  263.  
  264.  
  265. enum {
  266.     IF_MEMORY                    = 1,
  267.     IF_IO                        = 2
  268. };
  269.  
  270.  
  271. enum {
  272.     IRQ_HIGH                    = 64,
  273.     IRQ_ENABLE                    = 128
  274. };
  275.  
  276.  
  277. enum {
  278.     IRQ_MEMORY                    = 4,
  279.     IRQ_IO                        = 4
  280. };
  281.  
  282.  
  283. enum {
  284.     PS_ATTRIBUTE                = 0x01,
  285.     PS_ENABLED                    = 0x02,
  286.     PS_WP                        = 0x04
  287. };
  288.  
  289.  
  290. enum {
  291.     PWR_VCC                        = 128,                            /* Power pins in PwrEntry elements*/
  292.     PWR_VPP1                    = 64,
  293.     PWR_VPP2                    = 32
  294. };
  295.  
  296.  
  297. enum {
  298.     SBM_WP                        = 1,
  299.     SBM_LOCKED                    = 2,
  300.     SBM_EJECT                    = 4,
  301.     SBM_INSERT                    = 8,
  302.     SBM_BVD1                    = 16,
  303.     SBM_BVD2                    = 32,
  304.     SBM_RDYBSY                    = 64,
  305.     SBM_CD                        = 128
  306. };
  307.  
  308.  
  309. enum {
  310.     SBM_LOCK                    = 16,
  311.     SBM_BATT                    = 32,
  312.     SBM_BUSY                    = 64,
  313.     SBM_XIP                        = 128
  314. };
  315.  
  316. /* Vendor Specific Apple Socket Capabilities */
  317.  
  318. enum {
  319.     SBM_SLEEP_PWR                = 1
  320. };
  321.  
  322.  
  323. enum {
  324.     WC_COMMON                    = 1,
  325.     WC_IO                        = 2,
  326.     WC_ATTRIBUTE                = 4,
  327.     WC_TYPE_MASK                = 7,
  328.     WC_WAIT                        = 128
  329. };
  330.  
  331.  
  332. enum {
  333.     WC_BASE                        = 1,
  334.     WC_SIZE                        = 2,
  335.     WC_WENABLE                    = 4,
  336.     WC_8BIT                        = 8,
  337.     WC_16BIT                    = 16,
  338.     WC_BALIGN                    = 32,
  339.     WC_POW2                        = 64,
  340.     WC_CALIGN                    = 128,
  341.     WC_PAVAIL                    = 256,
  342.     WC_PSHARED                    = 512,
  343.     WC_PENABLE                    = 1024,
  344.     WC_WP                        = 2048
  345. };
  346.  
  347.  
  348. enum {
  349.     WC_INPACK                    = 128,
  350.     WC_EISA                        = 256,
  351.     WC_CENABLE                    = 512
  352. };
  353.  
  354.  
  355. enum {
  356.     WS_IO                        = 1,
  357.     WS_ENABLED                    = 2,
  358.     WS_16BIT                    = 4
  359. };
  360.  
  361.  
  362. enum {
  363.     WS_PAGED                    = 8,
  364.     WS_EISA                        = 16,
  365.     WS_CENABLE                    = 32,
  366.     WS_SWAP_LITTLE_TO_BIG_ENDIAN = 64
  367. };
  368.  
  369.  
  370. enum {
  371.     SS_SIG_VALUE                = 0x5353                        /* 'SS'*/
  372. };
  373.  
  374.  
  375. enum {
  376.     SS_CMPL_1_00                = 0x0100,                        /* compliant with rev 1.0 of SS standard*/
  377.     SS_CMPL_1_01                = 0x0101,                        /* compliant with rev 1.01 of SS standard*/
  378.     SS_CMPL_2_00                = 0x0200,                        /* compliant with rev 2.0 of SS standard*/
  379.     SS_CMPL_2_10                = 0x0210                        /* compliant with rev 2.1 of SS standard*/
  380. };
  381.  
  382. /*————————————————————————————————————————————————————————————————————————
  383.     Universal ProcPtr for Socket Service entry point
  384. ————————————————————————————————————————————————————————————————————————*/
  385. typedef CALLBACK_API( short , PCCardSSEntryProcPtr )(UInt16 fnCode, Ptr callPB, Ptr dataPtr);
  386. typedef STACK_UPP_TYPE(PCCardSSEntryProcPtr)                     PCCardSSEntryUPP;
  387. enum { uppPCCardSSEntryProcInfo = 0x00000FA0 };                 /* pascal 2_bytes Func(2_bytes, 4_bytes, 4_bytes) */
  388. #define NewPCCardSSEntryProc(userRoutine)                         (PCCardSSEntryUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppPCCardSSEntryProcInfo, GetCurrentArchitecture())
  389. #define CallPCCardSSEntryProc(userRoutine, fnCode, callPB, dataPtr)  CALL_THREE_PARAMETER_UPP((userRoutine), uppPCCardSSEntryProcInfo, (fnCode), (callPB), (dataPtr))
  390. /*————————————————————————————————————————————————————————————————————————
  391.     Card Services calls used by a Socket Service
  392. ————————————————————————————————————————————————————————————————————————*/
  393.  
  394. struct CSEventEntryPB {
  395.     UInt32                             ssHandlerID;
  396.     UInt16                             adapter;
  397.     UInt16                             socket;
  398.     UInt16                             message;
  399.     Byte                             intrpBits;
  400.     Byte                             padding;
  401. };
  402. typedef struct CSEventEntryPB            CSEventEntryPB;
  403. typedef CALLBACK_API( void , PCCardCSEntryProcPtr )(CSEventEntryPB *pb);
  404. typedef STACK_UPP_TYPE(PCCardCSEntryProcPtr)                     PCCardCSEntryUPP;
  405. enum { uppPCCardCSEntryProcInfo = 0x000000C0 };                 /* pascal no_return_value Func(4_bytes) */
  406. #define NewPCCardCSEntryProc(userRoutine)                         (PCCardCSEntryUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppPCCardCSEntryProcInfo, GetCurrentArchitecture())
  407. #define CallPCCardCSEntryProc(userRoutine, pb)                     CALL_ONE_PARAMETER_UPP((userRoutine), uppPCCardCSEntryProcInfo, (pb))
  408. /*------------        AddSocketServices        ------------                            */
  409.  
  410.  
  411. struct AddSocketServicesPB {
  412.     PCCardSSEntryUPP                 ssEntry;                    /* -> given to CS for its use*/
  413.     PCCardCSEntryUPP                 csEntry;                    /* <- taken from CS so we know where to enter*/
  414.  
  415.     UInt32                             dataPtr;
  416.     UInt32                             attributes;
  417.     UInt16                             numAdapters;
  418.     UInt16                             numSockets;
  419. };
  420. typedef struct AddSocketServicesPB        AddSocketServicesPB;
  421. /*------------         ReplaceSocketServices    ------------                            */
  422.  
  423.  
  424. struct ReplaceSocketServicesPB {
  425.     PCCardSSEntryUPP                 ssEntry;
  426.     PCCardSSEntryUPP                 oldSSEntry;
  427.  
  428.     UInt32                             dataPtr;
  429.     UInt16                             socket;
  430.     UInt16                             numSockets;
  431.     UInt16                             attributes;
  432. };
  433. typedef struct ReplaceSocketServicesPB    ReplaceSocketServicesPB;
  434. EXTERN_API( OSErr )
  435. CSAddSocketServices                (AddSocketServicesPB *    pb)                                    TWOWORDINLINE(0x7050, 0xAAF0);
  436.  
  437. EXTERN_API( OSErr )
  438. CSReplaceSocketServices            (ReplaceSocketServicesPB * pb)                                TWOWORDINLINE(0x7051, 0xAAF0);
  439.  
  440.  
  441.  
  442. /*————————————————————————————————————————————————————————————————————————
  443.     parameter blocks for each Socket Service function
  444. ————————————————————————————————————————————————————————————————————————*/
  445.  
  446. struct SSAcknowledgeInterruptPB {
  447.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  448.     UInt16                             sockets;                    /*    SS_SKTBITS*/
  449. };
  450. typedef struct SSAcknowledgeInterruptPB    SSAcknowledgeInterruptPB;
  451.  
  452. struct SSGetAccessOffsetsPB {
  453.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  454.     Byte                             mode;                        /*    SS_BYTE*/
  455.     Byte                             reserved;                    /*    padding*/
  456.     UInt16                             count;                        /*    SS_COUNT*/
  457.     Ptr                             buffer;                        /*    SS_PTR*/
  458.     UInt16                             numAvail;                    /*    SS_COUNT*/
  459. };
  460. typedef struct SSGetAccessOffsetsPB        SSGetAccessOffsetsPB;
  461.  
  462. struct SSGetAdapterCountPB {
  463.     UInt16                             totalAdapters;                /*    SS_COUNT*/
  464.     UInt16                             sig;                        /*    SS_SIGNATURE*/
  465. };
  466. typedef struct SSGetAdapterCountPB        SSGetAdapterCountPB;
  467.  
  468. struct SSGetSetAdapterPB {
  469.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  470.     Byte                             state;                        /*    SS_FLAGS8*/
  471.     Byte                             irqStatus;                    /*    SS_IRQ*/
  472. };
  473. typedef struct SSGetSetAdapterPB        SSGetSetAdapterPB;
  474.  
  475. struct SSGetSetEDCPB {
  476.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  477.     UInt16                             edc;                        /*    SS_EDC*/
  478.     UInt16                             socket;                        /*    SS_SOCKET*/
  479.     Byte                             state;                        /*    SS_FLAGS8*/
  480.     Byte                             edcType;                    /*    SS_FLAGS8*/
  481. };
  482. typedef struct SSGetSetEDCPB            SSGetSetEDCPB;
  483.  
  484. struct SSGetSetPagePB {
  485.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  486.     UInt16                             window;                        /*    SS_WINDOW*/
  487.     UInt16                             page;                        /*    SS_PAGE*/
  488.     Byte                             state;                        /*    SS_FLAGS8*/
  489.     Byte                             reserved;                    /*    padding*/
  490.     UInt32                             offset;                        /*    SS_OFFSET*/
  491. };
  492. typedef struct SSGetSetPagePB            SSGetSetPagePB;
  493.  
  494. struct SSGetSetPriorHandlerPB {
  495.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  496.     Byte                             mode;                        /*    SS_FLAGS8*/
  497.     Byte                             reserved;                    /*    padding*/
  498.     Ptr                             handler;                    /*    SS_PTR*/
  499. };
  500. typedef struct SSGetSetPriorHandlerPB    SSGetSetPriorHandlerPB;
  501.  
  502. struct SSGetSetSocketPB {
  503.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  504.     UInt16                             socket;                        /*    SS_SOCKET*/
  505.     UInt16                             vccIndex;                    /*    SS_PWRINDEX*/
  506.     UInt16                             vpp1Index;                    /*    SS_PWRINDEX*/
  507.     UInt16                             vpp2Index;                    /*    SS_PWRINDEX*/
  508.     Byte                             scIntMask;                    /*    SS_FLAGS8*/
  509.     Byte                             state;                        /*    SS_FLAGS8*/
  510.     Byte                             ctlInd;                        /*    SS_FLAGS8*/
  511.     Byte                             ireqRouting;                /*    SS_IRQ*/
  512.     Byte                             ifType;                        /*    SS_FLAGS8*/
  513.     Byte                             padding[1];                    /*    */
  514. };
  515. typedef struct SSGetSetSocketPB            SSGetSetSocketPB;
  516.  
  517. struct SSGetSetSSAddrPB {
  518.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  519.     Byte                             mode;                        /*    SS_BYTE*/
  520.     Byte                             subfunc;                    /*    SS_BYTE*/
  521.     UInt16                             numAddData;                    /*    SS_COUNT*/
  522.     Ptr                             buffer;                        /*    SS_PTR*/
  523. };
  524. typedef struct SSGetSetSSAddrPB            SSGetSetSSAddrPB;
  525.  
  526. struct SSGetSetWindowPB {
  527.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  528.     UInt16                             window;                        /*    SS_WINDOW*/
  529.     UInt16                             socket;                        /*    SS_SOCKET*/
  530.     UInt32                             size;                        /*    SS_SIZE*/
  531.     Byte                             state;                        /*    SS_FLAGS8*/
  532.     Byte                             reserved;                    /*    padding*/
  533.     UInt16                             speed;                        /*    SS_SPEED*/
  534.     UInt32                             base;                        /*    SS_BASE*/
  535. };
  536. typedef struct SSGetSetWindowPB            SSGetSetWindowPB;
  537.  
  538. struct SSGetSSInfoPB {
  539.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  540.     UInt16                             compliance;                    /*    SS_BCD*/
  541.     UInt16                             numAdapters;                /*    SS_COUNT*/
  542.     UInt16                             firstAdapter;                /*    SS_ADAPTER*/
  543. };
  544. typedef struct SSGetSSInfoPB            SSGetSSInfoPB;
  545.  
  546. struct SSGetStatusPB {
  547.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  548.     UInt16                             socket;                        /*    SS_SOCKET*/
  549.     Byte                             cardState;                    /*    SS_FLAGS8*/
  550.     Byte                             socketState;                /*    SS_FLAGS8*/
  551.     Byte                             ctlInd;                        /*    SS_FLAGS8*/
  552.     Byte                             ireqRouting;                /*    SS_IRQ*/
  553.     Byte                             ifType;                        /*    SS_FLAGS8*/
  554.     Byte                             padding[1];                    /*    */
  555. };
  556. typedef struct SSGetStatusPB            SSGetStatusPB;
  557.  
  558. struct SSGetVendorInfoPB {
  559.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  560.     Byte                             vendorInfoType;                /*    SS_BYTE*/
  561.     Byte                             reserved;                    /*    padding*/
  562.     Ptr                             buffer;                        /*    SS_PTR*/
  563.     UInt16                             release;                    /*    SS_BCD*/
  564. };
  565. typedef struct SSGetVendorInfoPB        SSGetVendorInfoPB;
  566.  
  567. struct SSInquireAdapterPB {
  568.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  569.     Ptr                             buffer;                        /*    SS_PTR*/
  570.     UInt16                             numSockets;                    /*    SS_COUNT*/
  571.     UInt16                             numWindows;                    /*    SS_COUNT*/
  572.     UInt16                             numEDCs;                    /*    SS_COUNT*/
  573. };
  574. typedef struct SSInquireAdapterPB        SSInquireAdapterPB;
  575.  
  576. struct SSInquireEDCPB {
  577.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  578.     UInt16                             edc;                        /*    SS_EDC*/
  579.     UInt16                             sockets;                    /*    SS_SKTBITS*/
  580.     Byte                             caps;                        /*    SS_FLAGS8*/
  581.     Byte                             types;                        /*    SS_FLAGS8*/
  582. };
  583. typedef struct SSInquireEDCPB            SSInquireEDCPB;
  584.  
  585. struct SSInquireSocketPB {
  586.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  587.     UInt16                             socket;                        /*    SS_SOCKET*/
  588.     Ptr                             buffer;                        /*    SS_PTR*/
  589.     Byte                             scIntCaps;                    /*    SS_FLAGS8*/
  590.     Byte                             scRptCaps;                    /*    SS_FLAGS8*/
  591.     Byte                             ctlIndCaps;                    /*    SS_FLAGS8*/
  592.     Byte                             padding[1];                    /*    */
  593. };
  594. typedef struct SSInquireSocketPB        SSInquireSocketPB;
  595.  
  596. struct SSInquireWindowPB {
  597.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  598.     UInt16                             window;                        /*    SS_WINDOW*/
  599.     Ptr                             buffer;                        /*    SS_PTR*/
  600.     Byte                             wndCaps;                    /*    SS_FLAGS8*/
  601.     Byte                             reserved;                    /*    padding*/
  602.     UInt16                             sockets;                    /*    SS_SKTBITS*/
  603. };
  604. typedef struct SSInquireWindowPB        SSInquireWindowPB;
  605.  
  606. struct SSPauseEDCPB {
  607.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  608.     UInt16                             edc;                        /*    SS_EDC*/
  609. };
  610. typedef struct SSPauseEDCPB                SSPauseEDCPB;
  611.  
  612. struct SSReadEDCPB {
  613.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  614.     UInt16                             edc;                        /*    SS_EDC*/
  615.     UInt16                             value;                        /*    SS_WORD*/
  616. };
  617. typedef struct SSReadEDCPB                SSReadEDCPB;
  618.  
  619. struct SSResetSocketPB {
  620.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  621.     UInt16                             socket;                        /*    SS_SOCKET*/
  622. };
  623. typedef struct SSResetSocketPB            SSResetSocketPB;
  624.  
  625. struct SSResumeEDCPB {
  626.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  627.     UInt16                             edc;                        /*    SS_EDC*/
  628. };
  629. typedef struct SSResumeEDCPB            SSResumeEDCPB;
  630.  
  631. struct SSStartEDCPB {
  632.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  633.     UInt16                             edc;                        /*    SS_EDC*/
  634. };
  635. typedef struct SSStartEDCPB                SSStartEDCPB;
  636.  
  637. struct SSStopEDCPB {
  638.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  639.     UInt16                             edc;                        /*    SS_EDC*/
  640. };
  641. typedef struct SSStopEDCPB                SSStopEDCPB;
  642.  
  643. struct SSVendorSpecificPB {
  644.     UInt16                             vsFunction;                    /*    SS_WORD*/
  645.     UInt16                             adapter;                    /*    SS_ADAPTER*/
  646.     UInt16                             socket;                        /*    SS_SOCKET*/
  647.     UInt16                             bufferSize;                    /*    SS_WORD*/
  648.     Ptr                             buffer;                        /*    SS_PTR*/
  649.     UInt32                             attributes;                    /*    SS_LONG*/
  650. };
  651. typedef struct SSVendorSpecificPB        SSVendorSpecificPB;
  652. /*    ‘attributes’ constants */
  653.  
  654. enum {
  655.     kSSGoingToSleep                = 0x00000001,
  656.     kSSWakingFromSleep            = 0x00000002
  657. };
  658.  
  659. /*————————————————————————————————————————————————————————————————————————
  660.     Non-specific Socket Services Functions
  661. ————————————————————————————————————————————————————————————————————————*/
  662. EXTERN_API( SS_RETCODE )
  663. SSGetAdapterCount                (SSGetAdapterCountPB *    pb,
  664.                                  Ptr                     dataPtr);
  665.  
  666. /*————————————————————————————————————————————————————————————————————————
  667.     Adapter Functions
  668. ————————————————————————————————————————————————————————————————————————*/
  669. EXTERN_API( SS_RETCODE )
  670. SSAcknowledgeInterrupt            (SSAcknowledgeInterruptPB * pb,
  671.                                  Ptr                     dataPtr);
  672.  
  673. EXTERN_API( SS_RETCODE )
  674. SSGetSetPriorHandler            (SSGetSetPriorHandlerPB * pb,
  675.                                  Ptr                     dataPtr);
  676.  
  677. EXTERN_API( SS_RETCODE )
  678. SSGetSetSSAddr                    (SSGetSetSSAddrPB *        pb,
  679.                                  Ptr                     dataPtr);
  680.  
  681. EXTERN_API( SS_RETCODE )
  682. SSGetAccessOffsets                (SSGetAccessOffsetsPB *    pb,
  683.                                  Ptr                     dataPtr);
  684.  
  685. EXTERN_API( SS_RETCODE )
  686. SSGetAdapter                    (SSGetSetAdapterPB *    pb,
  687.                                  Ptr                     dataPtr);
  688.  
  689. EXTERN_API( SS_RETCODE )
  690. SSGetSSInfo                        (SSGetSSInfoPB *        pb,
  691.                                  Ptr                     dataPtr);
  692.  
  693. EXTERN_API( SS_RETCODE )
  694. SSGetVendorInfo                    (SSGetVendorInfoPB *    pb,
  695.                                  Ptr                     dataPtr);
  696.  
  697. EXTERN_API( SS_RETCODE )
  698. SSInquireAdapter                (SSInquireAdapterPB *    pb,
  699.                                  Ptr                     dataPtr);
  700.  
  701. EXTERN_API( SS_RETCODE )
  702. SSSetAdapter                    (SSGetSetAdapterPB *    pb,
  703.                                  Ptr                     dataPtr);
  704.  
  705. EXTERN_API( SS_RETCODE )
  706. SSVendorSpecific                (SSVendorSpecificPB *    pb,
  707.                                  Ptr                     dataPtr);
  708.  
  709. /*————————————————————————————————————————————————————————————————————————
  710.     Socket Functions
  711. ————————————————————————————————————————————————————————————————————————*/
  712. EXTERN_API( SS_RETCODE )
  713. SSGetSocket                        (SSGetSetSocketPB *        pb,
  714.                                  Ptr                     dataPtr);
  715.  
  716. EXTERN_API( SS_RETCODE )
  717. SSGetStatus                        (SSGetStatusPB *        pb,
  718.                                  Ptr                     dataPtr);
  719.  
  720. EXTERN_API( SS_RETCODE )
  721. SSInquireSocket                    (SSInquireSocketPB *    pb,
  722.                                  Ptr                     dataPtr);
  723.  
  724. EXTERN_API( SS_RETCODE )
  725. SSResetSocket                    (SSResetSocketPB *        pb,
  726.                                  Ptr                     dataPtr);
  727.  
  728. EXTERN_API( SS_RETCODE )
  729. SSSetSocket                        (SSGetSetSocketPB *        pb,
  730.                                  Ptr                     dataPtr);
  731.  
  732. /*————————————————————————————————————————————————————————————————————————
  733.     Window Functions
  734. ————————————————————————————————————————————————————————————————————————*/
  735. EXTERN_API( SS_RETCODE )
  736. SSGetPage                        (SSGetSetPagePB *        pb,
  737.                                  Ptr                     dataPtr);
  738.  
  739. EXTERN_API( SS_RETCODE )
  740. SSGetWindow                        (SSGetSetWindowPB *        pb,
  741.                                  Ptr                     dataPtr);
  742.  
  743. EXTERN_API( SS_RETCODE )
  744. SSInquireWindow                    (SSInquireWindowPB *    pb,
  745.                                  Ptr                     dataPtr);
  746.  
  747. EXTERN_API( SS_RETCODE )
  748. SSSetPage                        (SSGetSetPagePB *        pb,
  749.                                  Ptr                     dataPtr);
  750.  
  751. EXTERN_API( SS_RETCODE )
  752. SSSetWindow                        (SSGetSetWindowPB *        pb,
  753.                                  Ptr                     dataPtr);
  754.  
  755. /*————————————————————————————————————————————————————————————————————————
  756.     Error Detection Functions
  757. ————————————————————————————————————————————————————————————————————————*/
  758. EXTERN_API( SS_RETCODE )
  759. SSGetEDC                        (SSGetSetEDCPB *        pb,
  760.                                  Ptr                     dataPtr);
  761.  
  762. EXTERN_API( SS_RETCODE )
  763. SSInquireEDC                    (SSInquireEDCPB *        pb,
  764.                                  Ptr                     dataPtr);
  765.  
  766. EXTERN_API( SS_RETCODE )
  767. SSPauseEDC                        (SSPauseEDCPB *            pb,
  768.                                  Ptr                     dataPtr);
  769.  
  770. EXTERN_API( SS_RETCODE )
  771. SSReadEDC                        (SSReadEDCPB *            pb,
  772.                                  Ptr                     dataPtr);
  773.  
  774. EXTERN_API( SS_RETCODE )
  775. SSResumeEDC                        (SSResumeEDCPB *        pb,
  776.                                  Ptr                     dataPtr);
  777.  
  778. EXTERN_API( SS_RETCODE )
  779. SSSetEDC                        (SSGetSetEDCPB *        pb,
  780.                                  Ptr                     dataPtr);
  781.  
  782. EXTERN_API( SS_RETCODE )
  783. SSStartEDC                        (SSStartEDCPB *            pb,
  784.                                  Ptr                     dataPtr);
  785.  
  786. EXTERN_API( SS_RETCODE )
  787. SSStopEDC                        (SSStopEDCPB *            pb,
  788.                                  Ptr                     dataPtr);
  789.  
  790.  
  791.  
  792. #if PRAGMA_STRUCT_ALIGN
  793.     #pragma options align=reset
  794. #elif PRAGMA_STRUCT_PACKPUSH
  795.     #pragma pack(pop)
  796. #elif PRAGMA_STRUCT_PACK
  797.     #pragma pack()
  798. #endif
  799.  
  800. #ifdef PRAGMA_IMPORT_OFF
  801. #pragma import off
  802. #elif PRAGMA_IMPORT
  803. #pragma import reset
  804. #endif
  805.  
  806. #ifdef __cplusplus
  807. }
  808. #endif
  809.  
  810. #endif /* __SOCKETSERVICES__ */
  811.  
  812.